/* jshint esversion: 6 */
// ! 注: 处理博客UI事件部分
// 初始化
(function () {
    window.onload = () => {
        // 加载库
        PetUI.SetJS("/lib/Editor/PetEditor.js");
        // 用户管理
        PetUI.SetJS("/js/Deploy/MD5.js");
        PetUI.SetJS("/js/Deploy/User.js");
        // 加载
        PetUI.SetJS("/js/Blogs/Effect.js"); // 加载特效
        PetUI.SetJS.onload = function () {
            PetUI.SetJS("/js/Blogs/UiDisplay.js"); // 加载UI显示
        };
        // 加载样式
        PetUI.BanMenu(); // 禁止菜单
        PetUI.SetCSS("/css/HomePage.css");
        // 创建大标题
        TitleInit();
        // 创建导航栏
        NavInit();
        // 容器初始化
        ContainersInit();
    };
    // TitleInit 创建大标题
    function TitleInit() {
        // 大标题
        var Title = PetUI.Create('div');
        Title.classList.add("Title");
        img1 = Title.Create("img");
        img1.src = "/img/小瑞猫.png";
        img1.CSS("width:235px;height:105;");
        img2 = Title.Create("img");
        img2.src = "/img/的博客.png";
        img2.CSS("left:-10px;position:relative;width:200px;height:90px");
        Title.Child();
    }
    // NavInit 创建导航栏
    function NavInit() {
        // 绑定容器
        window.TabStrip = new PetUI.TabStrip();
        // 导航栏
        var nav = PetUI.Navbar();
        nav.classList.add("Font");
        nav.CSS("left: 10px; width: calc(100% - 20px);");
        nav.Child();
        // 导航栏设置
        //nav.Submenu("主页").id = "主页";//.Click = function () {};
        nav.Submenu("文章").Click = function () {
            window.TabStrip.SetState("文章", true);
        };
        /*
        nav.Submenu("相册").Click = function () {
            window.TabStrip.SetState("相册", false);
        };
        */
        // 登陆按钮
        var Login = nav.Submenu("登陆");
        Login.parentNode.CSS("float: right;");
        // * 弹出用户菜单操作
        let submenu = Login.GetSubmenu();
        // * 创建文章
        submenu.Submenu("创建文章").Click = function () {
            PetUI.HTTP.Post({
                url: UserSite + "/AddArticle",
                data: {
                    Key: UserInfo.Key,
                }
            }, function (error, data) {
                if (data.Error != "") {
                    PetUI.PromptErr(data.Error);
                } else {
                    // * 显示文章编辑器 
                    window.TabStrip.SetState("编辑器", true)
                        .OnValueGet(window.location.origin + ":81/Article/" + data.Data + "?Key=" + UserInfo.uuid)
                        .ValueFile = data.Data;
                }
                // * 重读列表数据
                window.UpdateCount();
            });
        }
        // * 退出菜单
        submenu.Submenu("退出").Click = function () {
            Login.innerText = "登陆";
            window.UserInfo.LoggedOut();
        }
        // * 登陆界面模板
        PetUI.GetFile(`/Template/Login.html`, function (Templates) {
            // * iframe  隔离登陆模板
            var iframe = document.createElement("iframe");
            iframe = PetUI.SetElement.call(document.body, iframe, {
                Child: null,
                CSS: `   
                    overflow-x: hidden;
                    overflow-y: hidden;
                    position: absolute;
                    width: 100%;
                    height: 100%;
                    top: 0px;
                    display: inline;
                    border: aliceblue;
                    z-index: 999999!important;
                    `,
                Display: false
            });
            // * 登陆按钮按下事件
            Login.Click = function () {
                if (this.innerText == "登陆") {
                    iframe.Display(true);
                    submenu.Display(false);
                }
            };
            // * 解析器
            let Ay = new PetUI.Analysis();
            // * 设置模板参数
            Ay.Templates = Templates;
            Ay.$.iframe = iframe;
            Ay.$.CallBack = function () {
                PetUI.Prompt("登陆成功");
                // * 修改值
                Login.innerText = "菜单";
            };
            Ay.$.GetID = function (Name) {
                return iframe.contentDocument.getElementById(Name)
            };
            // 模板解析
            Ay.Analyze();
            // * 加载事件
            iframe.onload = iframe.onreadystatechange = function () {
                // * 加载完成
                if (!iframe.readyState || iframe.readyState == "complete") {
                    // * 恢复参数
                    PetUI.SetElement.call(iframe.contentDocument.body, iframe.contentDocument.body)
                    PetUI.SetElement.call(iframe.contentDocument.head, iframe.contentDocument.head)
                    // 解析模板
                    Ay.Update(iframe.contentDocument.body);
                    // * 设置解析到的CSS 
                    iframe.contentDocument.head.Add(PetUI.Create('style', {
                        innerHTML: Ay.AnalyticalVariables.css
                    }));
                };
            };
        });
    }
    // ContainersInit 容器初始化
    function ContainersInit() {
        // 加载样式
        PetUI.SetCSS("/css/Containers.css");
        // 主容器
        var Containers = PetUI.Create('div');
        Containers.id = "Containers";
        Containers.classList = "Containers";
        Containers.Child();
        // 个人资料等信息 左边显示
        var ShortcutLeft = Containers.Create('div');
        ShortcutLeft.id = "ShortcutLeft";
        ShortcutLeft.CSS("float: left;");
        ShortcutLeft.classList = "ContainersShortcut Description";
        // 日历控件访问 右边显示
        var ShortcutRight = Containers.Create('div');
        ShortcutRight.id = "ShortcutRight";
        ShortcutRight.CSS("float: right;z-index: 1;");
        ShortcutRight.classList = "ContainersShortcut Description";
        // 日历
        var Calendar = new PetUI.Calendar();
        ShortcutRight.Create(Calendar.GetDate());
        // 内容容器
        var Content = Containers.Create('div');
        Content.id = "Content";
        Content.CSS("margin-top: 0px;");
        Content.classList = "ContainersContent Description";
        // 添加一个容器
        Content.GetContent = function (Pagination, display) {
            var content = this.Create('div');
            content.Text = content.Create('div');
            content.Text.classList = "ContainersContent_Text";
            if (Pagination) {
                content.Pagination = content.Create(PetUI.Pagination(1));
            }
            if (display) {
                content.Display(true);
            } else {
                content.Display(false);
            }
            return content;
        };
    }
})();